#ifndef MYSQL_POOL_H
#define MYSQL_POOL_H

#include <mysql/mysql.h>
// #include "threadPool.h"

#define POOL_SIZE 10  // 最大连接数

typedef struct MysqlPool_s{
    MYSQL *connections[POOL_SIZE];  // 存储 MYSQL 连接对象
    int in_use[POOL_SIZE];          // 标记每个连接是否正在使用
    pthread_mutex_t lock;           // 互斥锁，保护共享资源
    pthread_cond_t cond;            // 条件变量，用于等待连接释放
} MysqlPool_t;

// 初始化连接池
void mysql_pool_init(MysqlPool_t *pool, const char *host, const char *user,
                     const char *pass, const char *dbname);

// 从连接池中获取一个可用连接（阻塞式）
MYSQL* mysql_pool_get(MysqlPool_t *pool);

// 使用完归还连接
void mysql_pool_release(MysqlPool_t *pool, MYSQL *conn);

// 程序退出时销毁连接池
void mysql_pool_destroy(MysqlPool_t *pool);

#endif
